package com.chapter14.collections_;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

/**
 * @author 宋鑫宇
 * @version 1.0
 * collections工具类的方法
 */
public class collections_ {
    public static void main(String[] args) {
        //创建ArrayList集合，用于测试
        List list = new ArrayList();
        list.add("tom");
        list.add("jack");
        list.add("Sxy");
        list.add("List");
        list.add("ED");
        list.add("UFO");
        //反转集合中的元素
        Collections.reverse(list);
        System.out.println(list);
        //对集合中的元素进行随机排序
        Collections.shuffle(list);
        System.out.println(list);
        //对集合中的元素进行自然排序
        Collections.sort(list);
        System.out.println(list);
        //按照指定比较器方法进行排序
        Collections.sort(list, new Comparator() {
            @Override
            public int compare(Object o1, Object o2) {
                return ((String) o1).length() - ((String) o2).length();
            }
        });
        System.out.println(list);
        //指定list集合中的i处元素和j处元素进行交换
        Collections.swap(list, 1, 3);
        System.out.println(list);

        //根据元素的自然顺序，返回给集合中的最大元素
        System.out.println("自然顺序最大元素=" + Collections.max(list));
        //根据Comparator指定的顺序，返回集合中最大的元素
        System.out.println(Collections.max(list, new Comparator() {
            @Override
            public int compare(Object o1, Object o2) {
                return ((String)o1).length() - ((String)o2).length();
            }
        }));
        //返回指定集合中指定元素的出现次数
        System.out.println(Collections.frequency(list,"ED"));
        //将Src中的内容复制到dest中
        List list1 = new ArrayList();
        //需要先给list1赋值，大小和list.size()一样
        for (int i = 0; i < list.size(); i++) {
            list1.add(" ");
        }
        Collections.copy(list1,list);//会报异常，因为list1中没有元素
        System.out.println(list1);
        //使用新值替换list对象中所有的旧值
        Collections.replaceAll(list,"List","sss");
        System.out.println(list);
    }
}
